package com.dkm.orproject.dkmoa.dao;

import com.dkm.orproject.dkmoa.domain.OaDimissionHandover;
import com.dkm.orproject.dkmoa.domain.vo.OaDimissionHandoverVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface OaDimissionHandoverMapper {
    /**
     * 删除离职交接流程
     * @param pkDimissionHandoverId
     * @return
     */
    int deleteByPrimaryKey(Long pkDimissionHandoverId);

    /**
     * 增加离职交接流程
     * @param record 离职交接模型
     * @return 增加的数量
     */
    int insertSelective(OaDimissionHandover record);

    /**
     * 根据离职交接ID查询离职交接
     * @param pkDimissionHandoverId 离职交接ID
     * @return 离职交接模型
     */
    OaDimissionHandover selectByPrimaryKey(Long pkDimissionHandoverId);

    /**
     * 更新
     * @param record 离职交接模型
     * @return 更新的数量
     */
    int updateByPrimaryKeySelective(OaDimissionHandover record);

    /**
     * 查询所有
     * @param handover 离职交接模型
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 离职交接模型
     */
    List<OaDimissionHandover> findAll(@Param("handover") OaDimissionHandover handover, @Param("startDate") String startDate, @Param("endDate") String endDate);

    /**
     * 查询所有的数量
     * @param handover 离职交接模型
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 离职交接模型
     */
    Long rowCount(@Param("handover") OaDimissionHandover handover,@Param("startDate") String startDate,@Param("endDate") String endDate);

    /**
     * 根据离职交接ID查询离职交接
     * @param pkDimissionHandoverId
     * @return 离职交接
     */
    OaDimissionHandoverVo findById(Long pkDimissionHandoverId);

    /**
     * 批量查询（批量删除需要）
     * @param list 离职交接的Id 的集合
     * @return 信息的集合
     */
    List<OaDimissionHandover> selectAll(List<Long> list);

    /***
     * 批量删除
     * @param list 离职交接的Id 的集合
     * @return 删除的数量
     */
    int deleteAll(List<Long> list);

}